package com.galaxy.commom.base.utils;

/**
 * 正则表达式工具
 * @author caijinbang
 * @date 2018/9/7 21:01
 */
public class RegexUtil {

  /**
   * 返回根据Json的key获得value的正则表达式
   * 该表达式匹配如：{"password":"123456"}，则返回123456
   * @param jsonKey
   * @return
   */
  public static String getJSonValueRegex(String jsonKey){
    return "(?<=\""+ jsonKey +"\":\")[^\",]*";
  }


  /**
   * 返回根据Json的key获得Json的"key:value"的正则表达式
   * 该表达式匹配如：{"password":"123456"}，则返回"password":"123456"
   * @param jsonKey
   * @return
   */
  public static String getJSonRegex(String jsonKey){
    return "\""+ jsonKey +"\":\"([^\"]+)\"";
  }

  /**
   * 替换身份证号码
   * 如：replaceAllPhone("phone","\"phone\":|"18807318888\"")
   * 返回结果："phone":"188****8888"
   * @param jsonKey
   * @param rawStr
   * @return
   */
  public static String replaceAllPhone(String jsonKey,String rawStr){
    return rawStr.replaceAll("\""+ jsonKey +"\":\"(\\d{3})(\\d{4})(\\d{4})\"","\""+ jsonKey +"\":\"$1****$3\"");
  }

  /**
   * 替换电话号码
   * 如：repalceAllIdCard("idCard","\"idCard\":|"430101199012310000\"")
   * 返回结果："idCard":"430101****0000"
   * @param jsonKey
   * @param rawStr
   * @return
   */
  public static String repalceAllIdCard(String jsonKey,String rawStr){
    return rawStr.replaceAll("\""+ jsonKey +"\":\"(\\d{6})(?:\\d+)(\\d{4})\"","\""+ jsonKey +"\":\"$1****$2\"");
  }
}
